#ifndef MAINWIDGET_H
#define MAINWIDGET_H
#include "messageeditarea.h"
#include "messageshowarea.h"
#include <QWidget>
#include<QPushButton>
#include<QLineEdit>
#include"messionmid.h"
#include"selfinfowidget.h"

class MainWidget : public QWidget
{
    Q_OBJECT

private:
    static MainWidget* instance;
    // 对于单例模式来说, 最关键的部分, 不是 "创建实例" , 而是限制别人创建实例.
    MainWidget(QWidget *parent = nullptr);

public:
    static MainWidget* getInstance();
    ~MainWidget();
      //主界面创建三个QWidget类，左边标签页，中间的具体标签页显示，右边的标签姐界面打开
private:
    // 窗口最左侧部分
    QWidget* windowLeft;
    // 窗口中间部分
    QWidget* windowMid;
    // 窗口右侧部分
    QWidget* windowRight;
    //下面这一个自己加的
    messionMid*area;
    // 用户头像
    QPushButton* userAvatar;
    // 会话标签页按钮
    QPushButton* sessionTabBtn;
    // 好友标签页按钮
    QPushButton* friendTabBtn;
    // 好友申请标签页按钮
    QPushButton* applyTabBtn;

    // 用户搜索框
    QLineEdit* searchEdit;
    // 添加好友按钮
    QPushButton* addFriendBtn;

    messionMid* sessionFriendArea;

    // 显示会话标题
    QLabel* sessionTitleLabel;

    // 显示会话详情按钮
    QPushButton* extraBtn;

    // 消息展示区
    MessageShowArea* messageShowArea;

    // 消息编辑区
    MessageEditArea* messageEditArea;

    enum ActiveTab {
        SESSION_LIST,
        FRIEND_LIST,
        APPLY_LIST
    };
  ActiveTab activeTab = SESSION_LIST;
public:
    void initMainWindow();
    void initLeftWindow();
    void initMidWindow();
    void initRightWindow();
    void initSignalSlot();
    void switchTabToSession();
    void switchTabToFriend();
    void switchTabToApply();
    MessageShowArea* getMessageShowArea();
};
#endif // MAINWIDGET_H
